<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:general="http://java.sun.com/jsf/composite/components/general">

    <ui:composition template="template.xhtml">
        <ui:define name="dialogs">

             <general:confirmDialog
                widgetDialog="confirmRemoveDialog"
                dialogTitle="Remoção de produto"
                message="Deseja remover o produto selecionado?"
                buttonYesAction="#{produtoBean.delete()}"
                onclick_no_javascript="confirmRemoveDialog.hide()"
                onclick_yes_javascript="confirmRemoveDialog.hide()"
                onclick_yes_update=":growl :produtoForm"/>

            <p:dialog header="Cadastro de produto" widgetVar="newProduto" modal="true" resizable="false">
                <p:panel id="panelProduto" header="Produto" style="width: 310px">

                    <h:form id="newProdutoform">
                          <h:panelGrid columns="2">
                            
                            <h:outputText value="Nome: "/>
                            <p:inputText value="#{produtoBean.produto.name}"  style="width: 222px"/>

                            <h:outputText value="Detalhe: "/>
                            <p:autoComplete value="#{produtoBean.detalheSelected}" 
                                                      completeMethod="#{autoCompleteBean.completeDetalhe}"
                                                    var="d" itemLabel="#{d.name}" itemValue="#{d}"
                                                    converter="detalheConverter" size="30" />
                            
                            <h:outputText value="Marca: "/>
                            <p:autoComplete value="#{produtoBean.marcaSelected}" 
                                                      completeMethod="#{autoCompleteBean.completeMarca}"
                                                    var="m" itemLabel="#{m.name}" itemValue="#{m}"
                                                    converter="marcaConverter" size="30" />
                            
                            <h:outputText value="Unidade: "/>
                            <p:autoComplete value="#{produtoBean.unidadeMedidaSelected}" 
                                                      completeMethod="#{autoCompleteBean.completeUnidadeMedida}"
                                                    var="m" itemLabel="#{m.name}" itemValue="#{m}"
                                                    converter="unidadeMedidaConverter" size="30" />
                            
                          </h:panelGrid>
                        <p:separator />
                        <p:commandButton value="Salvar" action="#{produtoBean.save()}" update=":produtoForm :growl" onclick="newProduto.hide()" />
                    </h:form>

                </p:panel>
            </p:dialog>

        </ui:define>



        <ui:define name="content">
            <h:form id="produtoForm">
              <h:panelGrid columns="2">
                        <h:outputText value="Nome:" styleClass="formLabel" style="width: 120px"/>
                        <p:inputText id="produtoName" style="width: 300px" value="#{produtoBean.filterNameProduto}"
                                     onclick="jQuery(this).select()">
                            <p:ajax event="keyup" update="produtoList" />
                        </p:inputText>

                        <p:watermark for="produtoName" value="Digite o nome do produto" />
                    </h:panelGrid>
              <h:panelGroup id="produtoList">
                  <p:dataTable var="p" value="#{produtoBean.listProdutos()}"
                               paginator="true" rows="10" rowKey="#{p.id}"
                                     emptyMessage="Nenhum produto foi encontrado"
                                     selectionMode="single" selection="#{detalheBean.detalheSelected}">

                            <p:ajax event="rowSelect" update="@this"/>

                            <f:facet name="header">
                                Lista de produtos
                            </f:facet>

                            <p:column>
                                <f:facet name="header">
                                    <h:outputText value="Nome" />
                                </f:facet>
                                <h:outputText value="#{p.name}" />
                            </p:column>
                            
                            <p:column>
                                <f:facet name="header">
                                    <h:outputText value="Detalhe" />
                                </f:facet>
                                <h:outputText value="#{p.detalhe}" />
                            </p:column>
                            
                            <p:column>
                                <f:facet name="header">
                                    <h:outputText value="Marca" />
                                </f:facet>
                                <h:outputText value="#{p.marca}" />
                            </p:column>

                            <p:column>
                                <f:facet name="header">
                                    <h:outputText value="Unidade" />
                                </f:facet>
                                <h:outputText value="#{p.unidadeMed.name}" />
                            </p:column>

                            <f:facet name="footer">
                                <p:commandButton icon="ui-icon ui-icon-plus" title="Adicionar produto" update=":newProdutoform" oncomplete="newProduto.show()"
                                                 disabled="#{not sharedPermissionManagedBean.hasPermission('CRIAR_PRODUTO')}"/>
                                <p:commandButton icon="ui-icon ui-icon-pencil" title="Editar produto" 
                                                 disabled="#{(not sharedPermissionManagedBean.hasPermission('EDITAR_PRODUTO')) or (produtoBean.produtoSelected.id == null)}"/>

                                <p:commandButton icon="ui-icon ui-icon-minus" title="Remover produto" onclick="confirmRemoveDialog.show()"
                                                 disabled="#{(not sharedPermissionManagedBean.hasPermission('REMOVER_PRODUTO')) or (produtoBean.produtoSelected.id == null)}"/>

                            </f:facet>
                        </p:dataTable>
                    </h:panelGroup>
            </h:form>
        </ui:define>
    </ui:composition>
</html>

